package com.ruoyi.oa.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import java.util.Date;
import com.ruoyi.workflow.domain.ActBusinessStatus;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

import javax.validation.constraints.NotBlank;


/**
 * 入职申请视图对象 oa_human_entry
 *
 * @author ruoyi
 * @date 2023-06-26
 */
@Data
@ExcelIgnoreUnannotated
public class OaHumanEntryVo {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
//    @ExcelProperty(value = "主键")
    private String id;


    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String userName;

    /**
     * 别名
     */
//    @ExcelProperty(value = "别名")
    private String otherName;


    /**
     * 是否为经历级别
     */
    private String isManage;

    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private String sex;

    /**
     * 账号
     */
    @ExcelProperty(value = "账号")
    private String nickName;

    /**
     * 密码
     */
    @ExcelProperty(value = "密码")
    private String password;

    /**
     * 用户邮箱
     */
    @ExcelProperty(value = "用户邮箱")
    private String email;

    /**
     * 手机号码
     */
    @ExcelProperty(value = "手机号码")
    private String phonenumber;

    /**
     * 部门
     */
//    @ExcelProperty(value = "部门")
//    private String depId;


    private String departId;

//    @NotBlank(message = "部门不能为空", groups = { AddGroup.class, EditGroup.class })
    @ExcelProperty(value = "部门")
    private String departName;

    /**
     * 角色
     */
    @ExcelProperty(value = "角色")
    private String roleId;

    /**
     * 花名册id
     */
//    @ExcelProperty(value = "花名册id")
    private String oaEmployeeId;


    /**
     * 业务状态实体对象
     */
    private ActBusinessStatus actBusinessStatus;


    /**
 * 创建时间
 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8")
    @ExcelProperty(value = "提交日期")
    @ColumnWidth(20)
    private Date createTime;

    @ExcelProperty(value = "提交人")
    private String createBy;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;


    private String oaEmployeeName;

    private String attachment;

}
